//=============================================================================
//
// file :         ClockClass.h
//
// description :  Include for the ClockClass root class.
//                This class is represents the singleton class for
//                the Clock device class.
//                It contains all properties and methods which the 
//                Clock requires only once e.g. the commands.
//			
// project :      TANGO Device Server
//
// $Author: $
//
// $Revision: $
//
// $Log: DevServClass.h,v $
//
// copyleft :     European Synchrotron Radiation Facility
//                BP 220, Grenoble 38043
//                FRANCE
//
//=============================================================================
//
//  		This file is generated by POGO
//	(Program Obviously used to Generate tango Object)
//
//         (c) - Software Engineering Group - ESRF
//=============================================================================

#ifndef _CLOCKCLASS_H
#define _CLOCKCLASS_H

#include <tango.h>


namespace Clock
{
//
// Define classes for commands
//
class GetDateCmd : public Tango::Command
{
public:
	GetDateCmd(const char *,Tango::CmdArgType, Tango::CmdArgType,const char *,const char *, Tango::DispLevel);
	GetDateCmd(const char *,Tango::CmdArgType, Tango::CmdArgType);
	~GetDateCmd() {};
	
	virtual bool is_allowed (Tango::DeviceImpl *, const CORBA::Any &);
	virtual CORBA::Any *execute (Tango::DeviceImpl *, const CORBA::Any &);
};



//
// The ClockClass singleton definition
//

class ClockClass : public Tango::DeviceClass
{
public:

//	add your own data members here
//------------------------------------

public:

//	Method prototypes
	static ClockClass *init(const char *);
	static ClockClass *instance();
	~ClockClass();
	
protected:
	ClockClass(string &);
	static ClockClass *_instance;
	void command_factory();
	void write_class_property();

private:
	void device_factory(const Tango::DevVarStringArray *);
};


}	//	namespace Clock

#endif // _CLOCKCLASS_H
